home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWAEBL10.ZIP / EBL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-04-09  |  4KB  |  366 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     String   STRING001
  22.     String   STRING002
  23.     String   STRING003
  24.     String   STRING004
  25.     String   STRING005
  26.     String   STRING012
  27.     Byte     BYTE001
  28.     Byte     BYTE002
  29.     Byte     BYTE003
  30.     Byte     BYTE004
  31.     Byte     BYTE005
  32.     Byte     BYTE006
  33.     Byte     BYTE007
  34.     Byte     BYTE008
  35.     Declare  Procedure PROC001()
  36.     Declare  Procedure PROC002()
  37.     Declare  Procedure PROC003(Byte BYTE009, Var Byte BYTE010, Var Byte BYTE011)
  38.     Declare  Procedure PROC005()
  39.     Declare  Procedure PROC006(Byte BYTE014)
  40.     Declare  Procedure PROC007()
  41.     Declare  Procedure PROC008(Byte BYTE012)
  42.     Declare  Procedure PROC009(Byte BYTE013)
  43.     Declare  Procedure PROC010(String STRING011)
  44.  
  45. ;------------------------------------------------------------------------------
  46.  
  47.     PROC001()
  48.     PROC005()
  49.     PROC002()
  50.     End
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     Procedure PROC002()
  55.  
  56.     Boolean  BOOLEAN002
  57.     Byte     BYTE006
  58.     Byte     BYTE007
  59.     Byte     BYTE008
  60.  
  61.     AnsiPos BYTE003, BYTE002
  62.     BYTE008 = BYTE002
  63.     PROC008(BYTE008)
  64.     BYTE006 = 1
  65.     BOOLEAN002 = 0
  66.     :LABEL001
  67.     If (BOOLEAN002) Goto LABEL002
  68.     BYTE007 = Asc(Inkey())
  69.     Delay 1
  70.     Select Case (BYTE007)
  71.         Case 13
  72.             PROC006(BYTE006)
  73.             PROC005()
  74.             PROC008(BYTE008)
  75.         Case 76, 85, 56
  76.             PROC009(BYTE008)
  77.             Dec BYTE006
  78.             If (BYTE006 < 1) BYTE006 = BYTE001
  79.             BYTE008 = BYTE008 - BYTE004
  80.             If (BYTE008 < BYTE002) BYTE008 = BYTE002 + BYTE001 * BYTE004 - 2
  81.             PROC008(BYTE008)
  82.         Case 82, 68, 50
  83.             PROC009(BYTE008)
  84.             Inc BYTE006
  85.             If (BYTE006 > BYTE001) BYTE006 = 1
  86.             BYTE008 = BYTE008 + BYTE004
  87.             If (BYTE008 > BYTE002 + BYTE001 * BYTE004 - 1) BYTE008 = BYTE002
  88.             PROC008(BYTE008)
  89.         Case 27, 81, 113
  90.             BOOLEAN002 = 1
  91.         Case Else
  92.             PROC003(Asc(Lower(Chr(BYTE007))) - 96, BYTE008, BYTE006)
  93.     End Select
  94.     Goto LABEL001
  95.     :LABEL002
  96.     PROC007()
  97.  
  98.     EndProc
  99.  
  100.  
  101. ;------------------------------------------------------------------------------
  102.  
  103.     Procedure PROC003(Byte BYTE009, Var Byte BYTE010, Var Byte BYTE011)
  104.  
  105.     If ((BYTE009 >= 1) && (BYTE009 <= BYTE001)) Then
  106.         PROC009(BYTE010)
  107.         BYTE010 = BYTE010 + (BYTE009 - BYTE011) * BYTE004
  108.         PROC008(BYTE010)
  109.         BYTE011 = BYTE009
  110.         PROC006(BYTE011)
  111.         PROC005()
  112.         PROC008(BYTE010)
  113.     Endif
  114.  
  115.     EndProc
  116.  
  117.  
  118. ;------------------------------------------------------------------------------
  119.  
  120.     Procedure PROC007()
  121.  
  122.     AnsiPos 1, U_PageLen
  123.     DefColor
  124.     PrintLn "@X08Enhanced Bulletin Lister v1.0 by Drew [PWA]@X07"
  125.  
  126.     EndProc
  127.  
  128.  
  129. ;------------------------------------------------------------------------------
  130.  
  131.     Procedure PROC008(Byte BYTE012)
  132.  
  133.     STRING004 = ScrText(BYTE003, BYTE012, BYTE005, 1)
  134.     AnsiPos BYTE003, BYTE012
  135.     Print STRING003 + StripAtx(STRING004)
  136.  
  137.     EndProc
  138.  
  139.  
  140. ;------------------------------------------------------------------------------
  141.  
  142.     Procedure PROC009(Byte BYTE013)
  143.  
  144.     AnsiPos BYTE003, BYTE013
  145.     Print STRING004
  146.  
  147.     EndProc
  148.  
  149.  
  150. ;------------------------------------------------------------------------------
  151.  
  152.     Procedure PROC005()
  153.  
  154.     Cls
  155.     DispFile STRING002, 0
  156.  
  157.     EndProc
  158.  
  159.  
  160. ;------------------------------------------------------------------------------
  161.  
  162.     Procedure PROC006(Byte BYTE014)
  163.  
  164.     String   STRING005
  165.  
  166.     FOpen 1, STRING001, 0, 2
  167.     FSeek 1, (BYTE014 - 1) * 30, 0
  168.     FRead 1, STRING005, 30
  169.     FClose 1
  170.     AnsiPos 1, U_PageLen
  171.     DispFile RTrim(STRING005, " "), 0
  172.     If (BOOLEAN001) Wait
  173.  
  174.     EndProc
  175.  
  176.  
  177. ;------------------------------------------------------------------------------
  178.  
  179.     Procedure PROC001()
  180.  
  181.     Byte     BYTE015
  182.     Byte     BYTE016
  183.     Byte     BYTE017
  184.     String   STRING006
  185.     String   STRING007
  186.     String   STRING008
  187.     String   STRING009
  188.     String   STRING010
  189.     Boolean  BOOLEAN003
  190.  
  191.     BYTE015 = TokCount()
  192.     If (BYTE015) Then
  193.         STRING008 = "B "
  194.         For BYTE016 = 1 To BYTE015
  195.             STRING008 = STRING008 + " " + GetToken()
  196.         Next
  197.         KbdStuff STRING008
  198.         End
  199.     Endif
  200.     STRING006 = ReadLine(PCBDat(), 31)
  201.     If (Exist(STRING006)) Goto LABEL003
  202.     PrintLn STRING006 + " does not exist.  Bad path in PCBOARD.DAT"
  203.     End
  204.     :LABEL003
  205.     STRING002 = ReadLine(STRING006, CurConf() * 33 + 24)
  206.     STRING001 = ReadLine(STRING006, CurConf() * 33 + 25)
  207.     If (Exist(STRING001)) Goto LABEL004
  208.     KbdStuff "B"
  209.     End
  210.     :LABEL004
  211.     BYTE001 = FileInf(STRING001, 4) / 30
  212.     STRING007 = PPEPath() + "EBL.CFG"
  213.     If (Exist(STRING007)) Goto LABEL005
  214.     PrintLn "@X0CError!  " + STRING007 + " does not exist!@X07"
  215.     End
  216.     :LABEL005
  217.     FOpen 1, STRING007, 0, 2
  218.     FDefIn 1
  219.     FDGet STRING008
  220.     If (Lower(STRING008) == "yes") Then
  221.         BOOLEAN001 = 1
  222.     Else
  223.         BOOLEAN001 = 0
  224.     Endif
  225.     FDGet STRING010
  226.     FDGet STRING008
  227.     BOOLEAN003 = 0
  228.     While (STRING008 <> "<eof>") Do
  229.         Tokenize STRING008
  230.         STRING009 = GetToken()
  231.         If ((Lower(STRING009) == "main") && (CurConf() == 0)) Then
  232.             BOOLEAN003 = 1
  233.             Break
  234.             Continue
  235.         Endif
  236.         BYTE017 = S2I(STRING009, 10)
  237.         If ((CurConf() <> 0) && (BYTE017 == CurConf())) Then
  238.             BOOLEAN003 = 1
  239.             Break
  240.             Continue
  241.         Endif
  242.         FDGet STRING008
  243.     EndWhile
  244.     FClose 1
  245.     If (BOOLEAN003) Then
  246.         BYTE002 = S2I(GetToken(), 10)
  247.         BYTE003 = S2I(GetToken(), 10)
  248.         BYTE004 = S2I(GetToken(), 10)
  249.         BYTE005 = S2I(GetToken(), 10)
  250.         STRING003 = GetToken()
  251.     Else
  252.         PROC010(STRING010)
  253.         End
  254.     Endif
  255.     GetUser
  256.  
  257.     EndProc
  258.  
  259.  
  260. ;------------------------------------------------------------------------------
  261.  
  262.     Procedure PROC010(String STRING011)
  263.  
  264.     String   STRING012
  265.  
  266.     Newline
  267.     InputStr STRING011, STRING012, 7, 3, Mask_Num() + Chr(13), 8192 + 64
  268.     If (STRING012 <> "") Then
  269.         KbdStuff "B " + STRING012
  270.     Endif
  271.     End
  272.  
  273.     EndProc
  274.  
  275.  
  276. ;------------------------------------------------------------------------------
  277. ;
  278. ; Usage report (before postprocessing)
  279. ;
  280. ; ■ Statements used :
  281. ;
  282. ;    7       End
  283. ;    1       Cls
  284. ;    1       Wait
  285. ;    30      Goto 
  286. ;    36      Let 
  287. ;    2       Print 
  288. ;    3       PrintLn 
  289. ;    22      If 
  290. ;    2       DispFile 
  291. ;    2       FOpen 
  292. ;    2       FClose 
  293. ;    1       GetUser
  294. ;    1       DefColor
  295. ;    1       InputStr 
  296. ;    1       Delay 
  297. ;    1       Inc 
  298. ;    1       Dec 
  299. ;    1       Newline
  300. ;    1       Tokenize 
  301. ;    3       KbdStuff 
  302. ;    5       AnsiPos 
  303. ;    1       FSeek 
  304. ;    1       FRead 
  305. ;    1       FDefIn 
  306. ;    4       FDGet 
  307. ;    9       EndProc
  308. ;
  309. ;
  310. ; ■ Functions used :
  311. ;
  312. ;    6       *
  313. ;    1       /
  314. ;    17      +
  315. ;    6       -
  316. ;    14      ==
  317. ;    3       <>
  318. ;    3       <
  319. ;    2       <=
  320. ;    2       >
  321. ;    3       >=
  322. ;    17      !
  323. ;    5       &&
  324. ;    7       ||
  325. ;    3       Lower()
  326. ;    2       Chr()
  327. ;    2       Asc()
  328. ;    1       RTrim()
  329. ;    1       StripAtx()
  330. ;    1       Inkey()
  331. ;    1       Mask_Num()
  332. ;    5       CurConf()
  333. ;    1       PCBDat()
  334. ;    1       PPEPath()
  335. ;    3       ReadLine()
  336. ;    7       GetToken()
  337. ;    3       Exist()
  338. ;    5       S2I()
  339. ;    1       FileInf()
  340. ;    1       TokCount()
  341. ;    1       ScrText()
  342. ;
  343. ;------------------------------------------------------------------------------
  344. ;
  345. ; Analysis flags : d
  346. ;
  347. ; d - Access PCBOARD.DAT ■ 2
  348. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  349. ;     for many PPE so they can find various informations on the system
  350. ;     (system paths, max number of lines in messages, ...) but it may also
  351. ;     be a way to gather vital informations.
  352. ;     ■ Search for : PCBDAT()
  353. ;
  354. ;------------------------------------------------------------------------------
  355. ;
  356. ; Postprocessing report
  357. ;
  358. ;    1       For/Next
  359. ;    1       While/EndWhile
  360. ;    7       If/Then or If/Then/Else
  361. ;    1       Select Case
  362. ;
  363. ;------------------------------------------------------------------------------
  364. ;                 AEGiS Corp - Break the routines, code against the machines!
  365. ;------------------------------------------------------------------------------
  366.